1
Além das Operações Elementares: A Mudança para Operações Matriciais por Lotes
AI023Lesson 9
00:00

Nas lições anteriores, focamos em operações elementares (como uma ReLU básica em uma matriz). Essas são limitadas pela memória porque a GPU gasta mais tempo movendo dados da HBM para os registradores do que realizando cálculos matemáticos.

1. Por que o GEMM é Central

A Multiplicação Geral de Matrizes (GEMM) tem uma complexidade computacional de $O(N^3)$ enquanto exige apenas $O(N^2)$ acesso à memória. Isso nos permite ocultar a latência da memória por meio de um grande throughput aritmético, tornando-o o "pulso" dos modelos de linguagem grandes (LLMs).

2. Representação da Memória em 2D

A memória RAM física é unidimensional. Para representar um tensor bidimensional, usamos deslocamentos. Um erro comum em produção é assumir que um tensor é contíguo. Se você confundir os deslocamentos de linha e coluna em seus cálculos de ponteiros, poderá acessar dados "fantasma" ou provocar violações de memória.

3. Generalização por Lotes

O Triton generaliza a lógica elementar ao mudar de ponteiros simples para blocos de ponteiros. Usando blocos 2D (por exemplo, $16 \times 16$), exploramos reutilização de dados na SRAM de alta velocidade, mantendo os dados "quentes" para operações combinadas como adição de viés ou ativações antes de gravá-los de volta na memória global.

Layout Linear 1DLayout por Lotes 2D
main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>